
// 严格模式
"use strict";
// 点击弹框
function clickdemoButtonEevent(){
	alert('欢迎来到js的世界')
}

//切换图片- DOM更改属性
function clickChangeImage(){

   element = document.getElementById('demo_img_02')

   if(element.src.match('emoji-14')){

    	element.src = "../../Resource/emoji.png"

   }else{

	 	element.src = "../../Resource/emoji-14.png"
   }
}

//检测输入时候是数字
function clickCheckNumberEvent(){

	element = document.getElementById('demo_input_03');

	var value = element.value;


	if (value =="" || isNaN(value)){

		window.alert("请确定输入的是数字");

	}else{
         window.alert("恭喜您，输入正确 ");
 
	}

}

// 对象类的方法
var person = {
	name :'zibin',
	age : 18,
	id : 23,
	food : '小米',
	eat : function(x){
		return this.name + '吃' + this.food + x;
	}

};

// 吃
function clickPersonEatEvent(){
    var str = person.eat('东西');
    alert(str);
}

/**************************************5.计算器的实现****************************************/

//计算器输入数字
var inputValue = '';
var calculatorType = '';
var startNumber = '';
var endNumber = ''
function clickCalculatorNumber(value){

       inputValue = inputValue + value;

       if(this.calculatorType.length == 0){
      		this.startNumber = inputValue;
      }else{
      		this.endNumber = inputValue;
      }
   
      //显示的
      var showValue =  this.startNumber + this.calculatorType + this.endNumber;

      this.showInViewWithContent(showValue);

}


function clickCalculatorOperation(type){

	//保存计算类型
	 this.calculatorType = type;

	 var showValue =  inputValue + this.calculatorType;

	 this.showInViewWithContent(showValue);

	 inputValue = '';
}

function clickCalculatorResult(){

    var resultValue = 0;
    	switch(this.calculatorType){
		case '+':{
            resultValue = parseInt(this.startNumber) + parseInt(this.endNumber);
			break;
		}
		case '-':{
            resultValue = parseInt(this.startNumber) - parseInt(this.endNumber);
			break;
		}

		case 'x':{
            resultValue = parseInt(this.startNumber) * parseInt(this.endNumber);
			break;
		}
		case '/':{
            resultValue = parseInt(this.startNumber) / parseInt(this.endNumber);
			break;
		}

	}
	this.startNumber = resultValue.toString();
	inputValue = this.startNumber;

	this.showInViewWithContent(this.startNumber);

}


// 显示到输入文本框中
function showInViewWithContent(param){

    var element = document.getElementById('demo_input_05');
    
    element.value = param;

}


var person = {
    age : 20,
    name : "刘子彬",
    sex : "男",
    color : "red",
	province : "重庆",
	city : "渝北区",
	district:"花卉园",
	address : function(){
		return this.province + this.city + this.district;
	}
}

function innnerPersonInfo(){
	var element = document.getElementById('demo_title_06_address01');
	element.innerText = "详细地址："+ person.name + " " + person['sex']+ " " + person.age + " "+ person.address();
	
	// // 计算字符串长度
	// var str = element.innerText;
	// alert(str.length);
	
	// 新增事件监听
    // element.addEventListener(event,function,usecapute)
    // 第一个参数是事件的类型 (如 "click" 或 "mousedown").
	// 第二个参数是事件触发后调用的函数。
	// 第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。默认值为 false, 即冒泡传递，当值为 true 时, 事件使用捕获传递
}
function clearPersonInfo(){
	var element = document.getElementById('demo_title_06_address01');
	element.innerText = "详细地址：";
}

//判断数组类型
function isArray(param){
	//方式一
	// var  paramType = param.constructor;
	// var str = String(paramType);
	// var strarray = str.split(' ');
	// var count = strarray.length;
	// var  arrayTypeStr = "";
	// if(count > 1){
	// 	arrayTypeStr = strarray[1];
	// }
	// var index  = arrayTypeStr.indexOf('Array');
	// var success = index > -1;
	// console.log(success);
	// 
	
	// 方式二
	var success  = param instanceof Array ? true : false;
	console.log(success);
	return success;

	
}



/******************************1.函数**********************/

// 1.函数的定义 function

// // 自调用函数本质
// var  funcName = function () {
//     var x = "Hello!!";      // 我将调用自己
// }
// (funcName)();

// funcName();

// (function () {
//     var x = "Hello!!";      // 我将调用自己
// })()


//2。函数的参数：函数显式参数(Parameters)与隐式参数(Arguments)
  
// 函数显式参数(Parameters)：定义函数的定义
// function functionName( param1, param2, param3){
//     执行的代码
// }
// argument 对象包含了函数调用的参数数组。

// 如果函数在调用时未提供隐式参数，参数会默认设置为： undefined

// 计算最大值
// function findMax(){

//     var max = 0;
// 	var count = arguments.length;

// 	if(count <= 0){
// 	   // return max;
// 	}

// 	if(count == 1){

//        max = arguments[0];
//        // return max;
       
// 	}else{
//        for (var i = 0; i < count; i++) {
//              var current = arguments[i];
//              if(current > max){
//              	max = current;
//              }
//        }
//        // return max;
// 	}

//    console.log('计算结果：' + max)
//    var element = document.getElementById('demo_title_07');
//    element.innerHTML = '计算结果：' + max;
// }

// function finSum(){

// 	var  sum  = 0;
// 	for (var i = 0; i < arguments.length; i++) {
// 		 sum = sum + arguments[i];
// 	}

// 	console.log('计算结果' + sum);
// 	return sum;

// }


// 3.闭包
//  var add = (function () {
//     var counter = 0;
//     return function () {
// 		return counter += 1;
// 	}
// })();
// function myFunction(){
//     document.getElementById("demo").innerHTML = add();
// }


/******************************2.DOM操作**********************/
//HTMLCollection 不是一个数组 ，只是看起来像是一个数组  
//         getElementsByClassName() 返回节点列表

//NodeList 对象是一个从文档中获取的节点列表 (集合) 
//			所有浏览器的 childNodes 属性返回的是 NodeList 对象。
//			大部分浏览器的 querySelectorAll() 返回 NodeList 对象
//			




